package com.mkx.configurations;

/**
 * 自动配置接口 (AutoConfig)
 * 定义了自动配置模式的基本操作
 * 所有具体的自动配置类都需要实现这个接口
 */
public interface AutoConfig {
    
    /**
     * 配置的优先级
     * 优先级高的配置会先被应用
     * @return 优先级值，值越小优先级越高
     */
    int getOrder();
    
    /**
     * 检查配置是否应该被应用
     * @return 如果配置应该被应用则返回true，否则返回false
     */
    boolean shouldApply();
    
    /**
     * 应用配置
     * 实现配置的具体逻辑
     */
    void apply();
    
    /**
     * 获取配置的名称
     * @return 配置名称
     */
    String getName();
}